Data messages transmitted in communication systems sometimes encounter conditions that cause reception errors. Such errors can be particularly troublesome in radio communication systems comprising portable receivers wherein a receiver may be carried temporarily into areas of poor reception. In one-way radio communication systems, e.g., a selective call messaging system, a technique that is used to provide higher reliability of message receipt is to transmit one or more duplicates of each message, the duplicates being offset in time from the time of an original transmission of each message.
While this technique does improve reliability of message receipt, it is accompanied by several drawbacks. Having to store one or more duplicates of each message within the limited memory of a selective call receiver wastes memory that may be needed for storing other messages. Having to display, read, and delete duplicate messages is bothersome to a user of the selective call receiver. For these reasons it is desirable for the selective call receiver to implement duplicate message identification and elimination.
Conventional duplicate message identification schemes are computationally intensive. Because messages are received with errors, the memory of the selective call receiver must store information about whether each portion of each received message was received in error. As message length increases, the amount of memory required to store error information increases in direct proportion. Conventional duplicate message identification schemes compare each non-errored portion of a first message with a corresponding non-errored portion of a second message. If all the non-errored portions match, then the messages are determined to be duplicates. Particularly for lengthy messages the processing requirements to perform the conventional duplicate message identification algorithm are considerable.
One method that could be helpful in performing duplicate message identification would be for the selective call messaging system to send a header with each message for identifying the message. The selective call receiver could then compare the header with the headers of other messages received to determine whether the message is a duplicate. If so, the duplicate message having the least errors could be retained and the other message discarded.
Unfortunately, using headers as a method for duplicate message identification also has drawbacks. The main drawback is that if the header is received in error, the method breaks down. Another drawback is that the air time required for sending the header uses system capacity that could otherwise be used for sending messages. Also, system-provided headers, while identifying duplicate messages that the system itself has generated, may not correctly identify as duplicates any duplicate messages that have been generated individually by a message sender.
Although the need to identify duplicate messages is often to eliminate all but one of the duplicates, there are times when it is desirable for a communication system to retransmit a specific duplicate message. For example, a message may have been received with numerous errors, and a user of the communication system may desire that an error-free copy be sent over a different, more error-free path such as a wire-line communication path. To request the system to retransmit a duplicate message, it is necessary to identify the message. Still, identifying a duplicate message to request a retransmission has all the aforementioned drawbacks associated with identifying a duplicate message to eliminate the message.
Thus, what is needed is a better duplicate message identification scheme. A duplicate message identification scheme is needed that is not computationally intensive and that does not require the receiver to store error information whose volume increases without limit in proportion to message length. Also, a duplicate message identification scheme that does not require the transmission of additional information, e.g., headers, from the selective call messaging system is desirable. Furthermore, a duplicate message identification scheme that intelligently detects duplicate messages based on the actual message contents, regardless of how the duplicate messages were generated is needed. A duplicate message identification method is needed also for identifying messages for retransmission in a retransmission request.